<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <!-- 分割数组
给定一个数组 nums ，将其划分为两个连续子数组 left 和 right， 使得：
left 中的每个元素都小于或等于 right 中的每个元素。
left 和 right 都是非空的。
left 的长度要尽可能小。
在完成这样的分组后返回 left 的长度和 left、right 这两个数组。
示例 1：
输入：nums = [5,0,3,8,6]
输出：3 left: [5,0,3] right: [8,6]
解释：left = [5,0,3]，right = [8,6]
 -->
</head>
<body>
  <script>
    var partitionDisjoint = function(nums) {
    const n = nums.length;
    const minRight = new Array(n).fill(0);
    minRight[n - 1] = nums[n - 1];
    for (let i = n - 2; i >= 0; i--) {
        minRight[i] = Math.min(nums[i], minRight[i + 1]);
    }

    let maxLeft = 0;
    for (let i = 0; i < n - 1; i++) {
        maxLeft = Math.max(maxLeft, nums[i]);
        if (maxLeft <= minRight[i + 1]) {
            return i + 1;
        }
    }
    return n - 1;
};
console.log(partitionDisjoint([5,0,3,8,6]));
  </script>
</body>
</html>